var wgtVer=null;
var keyUpdate="updateCheck";//取消升级键名
var keyAbort="updateAbort";//忽略版本键名
var checkInterval=0;//升级检查间隔，单位为ms,7天为7*24*60*60*1000=604800000, 如果每次启动需要检查设置值为0
function plusReady(){
	// 获取本地应用资源版本号
	plus.runtime.getProperty(plus.runtime.appid,function(inf){
		wgtVer=inf.version;
		console.log("当前应用版本："+wgtVer);
		// checkUpdate()
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready',plusReady,false);
}
// 检测更新
var checkUrl= server_url+"/9airweb/9airkc/checkUpdate";
function checkUpdate(){
	UpdateState();
	if (isOnLine) {
		console.log(checkUrl);
		// 判断升级检测是否过期
		var lastcheck = plus.storage.getItem( keyUpdate );
		if ( lastcheck ) {
			var dc = parseInt( lastcheck );
			var dn = (new Date()).getTime();
			if ( dn-dc < checkInterval ) {	// 未超过上次升级检测间隔，不需要进行升级检查
				return;
			}
			// 取消已过期，删除取消标记
			plus.storage.removeItem( keyUpdate );
		}
		
		var xhr=new XMLHttpRequest();
		xhr.onreadystatechange=function(){
			switch(xhr.readyState){
				case 4:
				plus.nativeUI.closeWaiting();
				if(xhr.status==200){
					console.log("检测更新成功："+xhr.responseText);
					var newVer=xhr.responseText;
					console.log("最新应用版本："+newVer);
					checkUpdateData( wgtVer,newVer )
				}else{
					console.log("检测更新失败！");
					plus.nativeUI.alert("检测更新失败！");
				}
				break;
				default:
				break;
			}
		}
		xhr.open('GET',checkUrl);
		xhr.send();
	}
}
/**
   * 检查升级数据
   */
function checkUpdateData( curVer,srvVer ){
	
	// 判断是否存在忽略版本号
	var vabort = plus.storage.getItem( keyAbort );
	if ( vabort && srvVer==vabort ) {
		// 忽略此版本
		return;
	}
	// 判断是否需要升级
	if ( compareVersion(curVer,srvVer) ) {
		// 提示用户是否升级
		plus.nativeUI.confirm( " ", function(i){
			if ( 0==i.index ) {
				downWgt();
				setItem( keyAbort, srvVer );
			} else if ( 1==i.index ) {
				setItem( keyAbort, srvVer );
				setItem( keyUpdate, (new Date()).getTime().toString() );
			} else {
				setItem( keyUpdate, (new Date()).getTime().toString() );
			}
		}, "有版本更新", ["立即更新","跳过此版本","取　　消"] );
	}
}


// 下载wgt文件
var wgtUrl=server_url+"/9airweb/9airkc.wgt";
function downWgt(){
	console.log(wgtUrl);
	plus.nativeUI.showWaiting("下载升级文件...");
	plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/"}, function(d,status){
		if ( status == 200 ) { 
			console.log("下载wgt成功："+d.filename);
			installWgt(d.filename);	// 安装wgt包
			//删除安装包
			plus.io.resolveLocalFileSystemURL( d.filename, function(entry){
				entry.remove(function ( entry ) {
					console.log( "删除安装包成功！" );
				});
			},function(e){
				console.log( "打开doc目录失败："+e.message );
			});
		} else {
			console.log("下载wgt失败！");
			plus.nativeUI.alert("下载升级文件失败！");
		}
		plus.nativeUI.closeWaiting();
	}).start();
}
// 更新应用资源
function installWgt(path){
	plus.nativeUI.showWaiting("安装升级文件...");
	plus.runtime.install(path,{},function(){
		plus.nativeUI.closeWaiting();
		console.log("安装wgt文件成功！");
		plus.nativeUI.alert("应用资源更新完成！",function(){
			plus.runtime.restart();
		});
	},function(e){
		plus.nativeUI.closeWaiting();
		console.log("安装wgt文件失败["+e.code+"]："+e.message);
		plus.nativeUI.alert("安装升级文件失败["+e.code+"]："+e.message);
	});
}
/**
   * 比较版本大小，如果新版本nv大于旧版本ov则返回true，否则返回false
   * @param {String} ov
   * @param {String} nv
   * @return {Boolean} 
   */
function compareVersion( ov, nv ){
	if ( !ov || !nv || ov=="" || nv=="" ){
		return false;
	}
	var b=false,
	ova = ov.split(".",4),
	nva = nv.split(".",4);
	for ( var i=0; i<ova.length&&i<nva.length; i++ ) {
		var so=ova[i],no=parseInt(so),sn=nva[i],nn=parseInt(sn);
		if ( nn>no || sn.length>so.length  ) {
			return true;
		} else if ( nn<no ) {
			return false;
		}
	}
	if ( nva.length>ova.length && 0==nv.indexOf(ov) ) {
		return true;
	}
}